/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.faesa.acervo.view.mbeans;

import br.faesa.acervo.business.ejb.CadastroBasicoSessionBeanLocal;
import br.faesa.acervo.entity.LivroTipo;
import java.io.Serializable;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.validation.constraints.Size;

/**
 *
 * @author aluno.faesa
 */
@ManagedBean(name = "livroTipoCadastroForm")
@ViewScoped
public class LivroTipoCadastroFormBean implements Serializable {

    @EJB 
    private CadastroBasicoSessionBeanLocal ejb;
    
    private Long id;
    private String descricao;
    
    public Long getId() { return id; }
    
    @Size(min=3, message = "O tamanho mínimo deverá ser entre 3 e 50")
    public String getDescricao() { return descricao; }

    public void setId(Long id) { this.id = id; }
    public void setDescricao(String descricao) { this.descricao = descricao; }
    
    public LivroTipoCadastroFormBean() { }

    private void configureSelectedId()
    {
        final String SELECTED_ID = "id";
        
        Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        
        if (paramMap.containsKey(SELECTED_ID))
        {
            this.setId(Long.valueOf(paramMap.get(SELECTED_ID)));
        }
    }
    
    @PostConstruct
    public void init() 
    { 
        this.configureSelectedId();
        
        if (this.getId() != null && this.getId() > 0)
        {
            LivroTipo itemSelecionado = ejb.obterLivroTipo(this.getId());
            
            if (itemSelecionado != null)
            {
                this.setDescricao(itemSelecionado.getDescricao());
            }
        }
    }
    
    public String onBotaoOKClick()
    {
        LivroTipo livroTipo = new LivroTipo();
        
        if (this.getId() != null && this.getId() > 0) livroTipo.setId(this.getId());

        livroTipo.setDescricao(this.getDescricao());
        
        ejb.salvarLivroTipo(livroTipo);
        
        return "/livroTipoConsultaForm.xhtml?faces-redirect=true";
    }

}
